package pe.gob.foncodes.ssa.bs.common.util;

import java.io.File;
import java.util.Date;

public class Constante {

    public static final String  CAPTCHA_KEY = "foncodes_captcha_key_name";
    public static final String  ELEGIBLE_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
    public static final String  SESSION_USER = "usuarioEnSesion";
    public static final String  USUARIO_CREACION = "usuarioCreacion";
    public static final String  USUARIO_MODIFICACION = "usuarioModificacion";
    public static final String  SESSION_ACCESO = "accesoEnSesion";
    
    public static final String  USUARIO_CREACION_AUDITORIA = "idAuditoria";
    public static final String  FECHA_CREACION_AUDITORIA = "fechaCreacionAud";
    public static final String  TIPO_OPERACION_AUDITORIA = "tipoOperacion";
    public static final String  NID_CONTROL_ACCESO_WEB = "NIdCtrlAccesoWeb";
    
    // Parametros
    public static final String  TIEMPO_ESPERA_CAMBIO_PASS_DIAS = "TIEMPO_ESPERA_CAMBIO_PASS_DIAS";
    public static final String  TIEMPO_ESPERA_REACTIVACION_DIAS = "TIEMPO_ESPERA_REACTIVACION_DIAS";
    public static final String  MAXIMOS_PASSWORDS_ALMACENADOS = "MAXIMOS_PASSWORDS_ALMACENADOS";
    public static final String  MAXIMO_TIEMPO_INACTIVIDAD = "MAXIMO_TIEMPO_INACTIVIDAD";
    public static final String  MAXIMO_TIEMPO_SIN_CAMBIO_PASS = "MAXIMO_TIEMPO_SIN_CAMBIO_PASS";
    public static final String  MAXIMO_NRO_INTENTOS_LOGIN = "MAXIMO_NRO_INTENTOS_LOGIN";
    public static final String  MAXIMOS_PASSWORDS_REPETIDOS = "MAXIMOS_PASSWORDS_REPETIDOS";
    public static final String  SEPARADOR_CONTRASENIA = ",";
    public static final char    CARACTER_USUARIO_DOMINIO = '@';
    public static final String  CORREO_ADMINISTRADOR_SSA = "CORREO_ADMINISTRADOR_SSA";
    // Fecha Inicial
    public final static Date    FECHA_INICIO = new Date(-1898, 0, 0, 0, 0, 0);
    public final static Date    FECHA_ACTUAL = new Date();
    //
    public static final String  NO_OPTION_SELECTED = "-1";
    public static final String  OPTION_SELECT = "--SELECCIONAR--";
    public static final String  OPTION_ALL = "<TODOS>";
    public static final String  OPTION_SI = "S";
    public static final String  OPTION_NO = "N";
    public static final Long    NO_SELECTED = Long.valueOf("-1");
    // Nombres genericos
    public static final String ESTADO_ACTIVO = "1";
    public static final String ESTADO_INACTIVO = "0";    
    public static final String ESTADO_BLOQUEADO = "1";
    public static final String CLAVE_CADUCADA = "1";
    public static final String CLAVE_NO_CADUCADA = "0";
    public static final String CAMBIO_DE_CLAVE = "1";
    public static final String PERFILUSUARIO_CADUCADA = "1";
    public static final String PERFILUSUARIO_NO_CADUCADA = "0";
    public static final String FLAG_AUTOMATICO = "1";
    public static final String FLAG_CONSULTA = "1";
    public static final String FLAG_HORARIO = "1";
    public static final String FLAG_PERFIL_BASE = "1";
    
    //Tipos de Usuario
    public static final String USUARIO_TIPO_INTERNO = "1";
    public static final String USUARIO_TIPO_EXTERNO = "2";
    
    //bloqueo por sistema
    public static final String MOTIVO_BLOQUEO ="MAXIMO NUMERO DE INTENTOS DE LOGIN";
    
    //Dominios de General
    public static final String DOMINIO_PREGUNTA_SECRETA = "PREGUNTA_SECRETA";
    public static final String DOMINIO_CORREO_USUARIO_INTERNO = "DOMINIO_CORREO_USUARIO_INTERNO";
    public static final String DOMINIO_TIPO_USUARIO = "TIPO_USUARIO";
    public static final String DOMINIO_TIPO_MODULO = "TIPO_MODULO";
    
    //Modulo por defecto
    public static final Long    NID_MODULO_SSA = Long.valueOf("0");
    
    // Constantes para las descripciones de los estados
    public static final String  DESCRIPCION_ESTADO_ACTIVO = "Activo";
    public static final String  DESCRIPCION_ESTADO_INACTIVO = "Inactivo";
    public static final String  DESCRIPCION_ESTADO_HABILITADO = "Habilitado";
    public static final String  DESCRIPCION_ESTADO_NUEVO = "Nuevo";
    public static final String  DESCRIPCION_ESTADO_BLOQUEADO = "Bloqueado";
    
    //TIPO_OPERACION de Control de Acceso
    public static final String TIPO_OPERACION_INICIO_SESION = "13";
    public static final String TIPO_OPERACION_CONTACTO_ADMIN = "15";
    
    
    // Tipos de Intento de LogIn (Inicio de Sesion)
    public static final String  INTENTO_VALIDO = "1";
    public static final String  INTENTO_RECHAZADO = "0";
    
    // Constante para definir la llave que se empleara en la encriptacion
    public static final String  KEY = "blue";
    // Menu
    public static final String  TIPO_MENU_NODO = "N";
    public static final String  TIPO_MENU_PADRE = "F";
    public static final String  TIPO_MENU_ABUELO = "M";
    public static final String  SISTEMA_OPERATIVO_WIN = "WIN";
    public static final String  SISTEMA_OPERATIVO_OTRO = "OTRO";
    public final static String  LOG_SEPARA_COLUMNA_RESPUESTA = "@@@";
    public final static String  LOG_SEPARA_COLUMNA_RESPUESTA_ER = "@@@";
    public final static String  LOG_SEPARA_FILA_RESPUESTA = "&&&";
    public final static String  LOG_SEPARA_FILA_RESPUESTA_ER = "&&&";
    // expresiones regulares
    public static final String  MATCH_PROMPT = "^.*\r\n[a-zA-Z0-9]*[>|#]$";

    // ES PRINCIPAL
    public static final String  ESPRINCIPAL_SI = "S";
    public static final String  ESPRINCIPAL_NO = "N";


    // Dias de la Semana
    public static final int     DIA_LUNES = 1;
    public static final int     DIA_MARTES = 2;
    public static final int     DIA_MIERCOLES = 3;
    public static final int     DIA_JUEVES = 4;
    public static final int     DIA_VIERNES = 5;
    public static final int     DIA_SABADO = 6;
    public static final int     DIA_DOMINGO = 7;
    // Meses
    public static final int     MES_ENERO = 0;
    public static final int     MES_FEBRERO = 1;
    public static final int     MES_MARZO = 2;
    public static final int     MES_ABRIL = 3;
    public static final int     MES_MAYO = 4;
    public static final int     MES_JUNIO = 5;
    public static final int     MES_JULIO = 6;
    public static final int     MES_AGOSTO = 7;
    public static final int     MES_SETIEMBRE = 8;
    public static final int     MES_OCTUBRE = 9;
    public static final int     MES_NOVIEMBRE = 10;
    public static final int     MES_DICIEMBRE = 11;
    
    //Constantes para definir los tipos de archivos que exportarán los reportes
    public static final String  ARCHIVO_PDF = "__pdf__";
    public static final String  ARCHIVO_EXCEL = "__excel__";
    public static final String  ARCHIVO_HTML = "__html__";
    //Constantes para definir la ubicacion de archivos jasper 
    public static final String  SEPARADOR = File.separator;
    
    //Constantes para el Servidor Active Directory
    public static final String  LDAP_SERVER="ldap://180.100.10.25:389";
    public static final String  DOMAIN_CONTROLLER="foncodes.pe";
    public static final String  INITIAL_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
    public static final String  ATTRIBUTES_DOMAIN = "dc=svradcd01,dc=foncodes,dc=pe";
    
    //Constantes Tipo de Operacón:
    public static final String TIPO_OPERACION_INSERTAR="I";
    public static final String TIPO_OPERACION_MODIFICAR="U";
    public static final String TIPO_OPERACION_ELIMINAR="D";
    
    //public static final String LDAP_SERVER="ldap://192.168.122.7:389";
    //public static final String DOMAIN_CONTROLLER="pvsala.com.pe";
    //public static final String INITIAL_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
    //public static final String ATTRIBUTES_DOMAIN = "dc=pvsala,dc=com,dc=pe";
    
    //Constante Sede Central
    public static final String CODIGO_SEDE_CENTRAL="99";
}